<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        //在ES5中，call、apply、bind在某个函数(方法)调用时限定该函数内部的this的指向
            // call和apply调用时指定的函数会立即执行
            // bind为指定函数设定this后，会返回一个改变了this的函数
        // 函数.call(调用者,参数1,参数2)
        // 函数.apply(调用者,数组)
        // 函数.bind(调用者, 参数1,参数2)



        
        function show(a,b){
            console.log(this);
            console.log(a+b);
        }
        var user={
            name:"tom"
        };

        // 函数.call(调用者,参数1,参数2)
        show.call(user,100,200);


        // 函数.apply(调用者,数组)
        show.apply(user,[1000,2000]);//在apply中第二个参数自行完成的循环展开，将数组元素对应的值赋值给函数的形参
        console.log(Math.max.apply(user,[100,50,1,980,67]));

      
        function show2(a,b,c){
            console.log(this);
            console.log(a,b,c);
        }
        // 函数.bind(调用者, 参数1,参数2)
        // var f=show2.bind(user,"嘻嘻","哈哈","呵呵");
        // f();
        show2.bind(user,"嘻嘻","哈哈","呵呵")();
    </script>
</head>
<body>
    
</body>
</html>